JMS ব্যবহার করে চ্যাট অ্যাপ্লিকেশন

Latest Technologies - অ্যাপাচি ক্যামেল (Apache  Camel) - প্র্যাকটিস প্রোজেক্টস | NCTB BOOK

Apache Camel ব্যবহার করে JMS (Java Message Service) ভিত্তিক একটি চ্যাট অ্যাপ্লিকেশন তৈরি করা একটি ভালো উদাহরণ যা ইন্টারঅ্যাক্টিভ মেসেজিং কিভাবে কাজ করে তা দেখায়। নিচে একটি সহজ চ্যাট অ্যাপ্লিকেশন তৈরি করার পদক্ষেপ উল্লেখ করা হলো যেখানে ব্যবহারকারীরা একটি JMS কিউ ব্যবহার করে বার্তা পাঠাতে এবং গ্রহণ করতে পারবেন।

প্রয়োজনীয় ডিপেন্ডেন্সি

প্রথমে, আপনার pom.xml-এ নিম্নলিখিত ডিপেন্ডেন্সিগুলি যোগ করুন:

<dependency>
    <groupId>org.apache.camel</groupId>
    <artifactId>camel-jms</artifactId>
    <version>3.14.0</version> <!-- Use the latest version -->
</dependency>
<dependency>
    <groupId>org.apache.activemq</groupId>
    <artifactId>activemq-spring-boot-starter</artifactId>
    <version>5.16.0</version>
</dependency>

১. JMS Configuration

JMS ব্যবহারের জন্য একটি কনফিগারেশন ক্লাস তৈরি করুন যেখানে আপনার JMS কনফিগারেশন এবং ActiveMQ সার্ভার সেট আপ করা হবে।

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.apache.activemq.ActiveMQConnectionFactory;
import javax.jms.ConnectionFactory;

@Configuration
public class JmsConfig {
    @Bean
    public ConnectionFactory connectionFactory() {
        return new ActiveMQConnectionFactory("tcp://localhost:61616");
    }
}

২. Camel Route Configuration

একটি Camel রাউট তৈরি করুন যা JMS কিউ থেকে মেসেজ পাঠাবে এবং গ্রহণ করবে। এখানে আমরা একটি chat কিউ ব্যবহার করব।

import org.apache.camel.builder.RouteBuilder;
import org.springframework.stereotype.Component;

@Component
public class ChatRoute extends RouteBuilder {
    @Override
    public void configure() throws Exception {
        from("jms:queue:chat")
            .log("Received message: ${body}");
    }
}

৩. Sending Messages to the Queue

একটি সিম্পল ক্লাস তৈরি করুন যা JMS কিউতে বার্তা পাঠাবে। এই ক্লাসটি ব্যবহারকারীর ইনপুট গ্রহণ করবে এবং বার্তা পাঠাবে।

import org.apache.camel.CamelContext;
import org.apache.camel.ProducerTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

import java.util.Scanner;

@Component
public class ChatClient {
    @Autowired
    private CamelContext camelContext;

    public void startChat() {
        ProducerTemplate template = camelContext.createProducerTemplate();
        Scanner scanner = new Scanner(System.in);
        
        System.out.println("Chat Application: Type your message and hit Enter.");
        
        while (true) {
            String message = scanner.nextLine();
            template.sendBody("jms:queue:chat", message);
        }
    }
}

৪. Main Application Class

Spring Boot অ্যাপ্লিকেশন চালানোর জন্য একটি মূল ক্লাস তৈরি করুন।

import org.springframework.boot.CommandLineRunner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class ChatApplication implements CommandLineRunner {

    private final ChatClient chatClient;

    public ChatApplication(ChatClient chatClient) {
        this.chatClient = chatClient;
    }

    public static void main(String[] args) {
        SpringApplication.run(ChatApplication.class, args);
    }

    @Override
    public void run(String... args) throws Exception {
        chatClient.startChat();
    }
}

৫. ActiveMQ সার্ভার

আপনার লোকাল মেশিনে ActiveMQ সার্ভার চালু থাকতে হবে। আপনি ActiveMQ ডাউনলোড করে এবং এটি লোকালহোস্টে চালু করতে পারেন।

৬. রান করা

  1. আপনার প্রকল্প বিল্ড করুন এবং চালান।
  2. যখন অ্যাপ্লিকেশন শুরু হয়, আপনার কনসোলে একটি চ্যাট ইন্টারফেস পাওয়া যাবে যেখানে আপনি বার্তা টাইপ করতে পারবেন।
  3. বার্তা টাইপ করার পর Enter প্রেস করুন, এবং সেই বার্তাগুলি chat কিউতে পাঠানো হবে।

উপসংহার

Apache Camel এবং JMS ব্যবহার করে একটি চ্যাট অ্যাপ্লিকেশন তৈরি করা একটি সোজা প্রক্রিয়া। এই উদাহরণটি আপনাকে একটি সিম্পল চ্যাট সিস্টেম কিভাবে তৈরি করা যায় তা দেখিয়েছে, যেখানে ব্যবহারকারীরা একটি কিউর মাধ্যমে বার্তা পাঠাতে এবং গ্রহণ করতে পারেন। এটি আরো জটিল এবং কার্যকরী চ্যাট সিস্টেম তৈরির জন্য ভিত্তি হিসেবে কাজ করতে পারে।

Promotion